﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PlanB.ShareDove.ConferenceOrganization.BusinessLayer.DataLayerInterface.Entities;

namespace PlanB.ShareDove.ConferenceOrganization.BusinessLayer.DataLayerInterface
{
    /// <summary>
    /// Defining interface for the DataLAyer
    /// </summary>
    public interface IConferenceOrganizationDataLayerInterface
    {
       
        /// <summary>
        /// Get list of sessions, filtered by the session day, track and speaker
        /// Leave nulls in those parameters where you don't want any filtering
        /// </summary>
        /// <param name="context">Current context in which is the data retreival taking place. In case of SharePoint: SPWeb</param>
        /// <param name="day">Day when the session is occuring</param>
        /// <param name="trackId">Id of the track to which the session belong</param>
        /// <returns>IEnumerable List of sessions</returns>
        IEnumerable<ConferenceSession> GetSessionData(object context, DateTime? day, int? trackId);
    }
}
